﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CapaPresentacion.Commands;
using CapaPresentacion.Vistas;
using Entidades;
using CapaLogica;
using System.Drawing;
using System.Windows.Input;
using System.Windows;
using System.Windows.Data;
using System.Transactions;
using Microsoft.Reporting.WinForms;
using System.Windows.Forms.Integration;
using System.Windows.Media.Imaging;
using System.IO;
using System.Collections.ObjectModel;

namespace CapaPresentacion.Controles
{
    class ReportePlanificaciónProyectoDidácticoViewModel
    {
        
        public event ReiniciarCU ReiniciarCU;

        private RelayCommand reportePlanificacionCommand;
        private RelayCommand buscarPlanificacionesCommand;

        ReportePlanificaciónProyectoDidáctico view;
        Guid idCicloLectivo;
        Guid idSeleccionado;


        public Guid IdCicloLectivo
        {
            get
            {
                return idCicloLectivo;
            }
            set
            {
                idCicloLectivo = value;

            }
        }

        public Guid IdSeleccionado
        {
            get
            {
                return idSeleccionado;
            }
            set
            {
                idSeleccionado = value;

            }
        }

        public List<ViewEntity> ListaCiclosLectivos { get; set; }
        public List<ViewEntity> ListaPlanificaciones{ get; set; }

        public ICommand ReportePlanificacionCommand
        {
            get
            {
                return reportePlanificacionCommand;
            }
        }

        public ICommand BuscarPlanificacionesCommand
        {
            get
            {
                return buscarPlanificacionesCommand;
            }
        }

        public ReportePlanificaciónProyectoDidácticoViewModel() { }


        public void Inicializar(ReportePlanificaciónProyectoDidáctico vista)
        {

            ListaCiclosLectivos = new CicloLectivoLogica().ObtenerEntidades();

            if (ListaCiclosLectivos.Count > 0 && ListaCiclosLectivos != null)
            {
                this.view = vista;
                this.reportePlanificacionCommand = new RelayCommand(ReportePlanificaciones);
                this.buscarPlanificacionesCommand = new RelayCommand(BuscarPlanificaciones);
            }
            else
            {
                VentanaAviso nueva = new VentanaAviso(true, "Se ha producido un error", "No se han encontrado ciclos lectivos");
                nueva.ShowDialog();
                this.ReiniciarCU(CasosDeUso.NuevoCicloLectivo);

            }


        }



        private void BuscarPlanificaciones(Object parameter)
        {
            if (idCicloLectivo != Guid.Empty)
            {

                CicloLectivo ciclo = new CicloLectivoLogica().ObtenerEntidad(idCicloLectivo);

                ListaPlanificaciones = new PlanificacionProyectoDidacticoLogica().ObtenerPlanificacionesPorAño(ciclo.FechaDesde.Value.Year);

                if (ListaPlanificaciones.Count > 0)
                {
                    this.view.listaDatos.ItemsSource = ListaPlanificaciones;
                    this.view.lblNoSelected.Visibility = Visibility.Collapsed;
                    this.view.spAlumnosEncontrados.Visibility = Visibility.Visible;

                }
                else
                {

                    this.view.lblNoSelected.Visibility = Visibility.Collapsed;
                    this.view.spAlumnosEncontrados.Visibility = Visibility.Collapsed;
                    VentanaAviso nueva = new VentanaAviso(true, "Se ha producido un error", "No se han encontrado planificaciones didácticas para el ciclo lectivo seleccionado");
                    nueva.ShowDialog();

                }
            }
            else
            {
                VentanaAviso nueva = new VentanaAviso(true, "Se ha producido un error", "Debe Seleccionar un Ciclo lectivo");
                nueva.ShowDialog();

            }


        }



        private void ReportePlanificaciones(Object parameter)
        {

            if (this.idSeleccionado != Guid.Empty)
            {
                this.view.lblNoSelected.Visibility = Visibility.Collapsed;

                PlanificacionProyectoDidactico planificacion = new PlanificacionProyectoDidacticoLogica().ObtenerEntidadParaInforme(idSeleccionado);

                DateTime primerDiaPeriodo = new DateTime(Convert.ToInt32(planificacion.AñoPlanificacion), this.ObtenerNumeroMes(planificacion.MesPlanificacion), 1);
                List<DiaFeriado> ListaDiasFeriados = new List<DiaFeriado>();
                ListaDiasFeriados = new DiaFeriadoLogica().ObtenerFeriadosPorAño(primerDiaPeriodo);

                InformePlanificacionComentariosDias comentarios = new InformePlanificacionComentariosDias(primerDiaPeriodo, ListaDiasFeriados);


                List<InformePlanificacionProyectoDidactico> ActividadesDia1 = new List<InformePlanificacionProyectoDidactico>();
                List<InformePlanificacionProyectoDidactico> ActividadesDia2 = new List<InformePlanificacionProyectoDidactico>();
                List<InformePlanificacionProyectoDidactico> ActividadesDia3 = new List<InformePlanificacionProyectoDidactico>();
                List<InformePlanificacionProyectoDidactico> ActividadesDia4 = new List<InformePlanificacionProyectoDidactico>();
                List<InformePlanificacionProyectoDidactico> ActividadesDia5 = new List<InformePlanificacionProyectoDidactico>();
                List<InformePlanificacionProyectoDidactico> ActividadesDia6 = new List<InformePlanificacionProyectoDidactico>();
                List<InformePlanificacionProyectoDidactico> ActividadesDia7 = new List<InformePlanificacionProyectoDidactico>();
                List<InformePlanificacionProyectoDidactico> ActividadesDia8 = new List<InformePlanificacionProyectoDidactico>();
                List<InformePlanificacionProyectoDidactico> ActividadesDia9 = new List<InformePlanificacionProyectoDidactico>();
                List<InformePlanificacionProyectoDidactico> ActividadesDia10 = new List<InformePlanificacionProyectoDidactico>();
                List<InformePlanificacionProyectoDidactico> ActividadesDia11 = new List<InformePlanificacionProyectoDidactico>();
                List<InformePlanificacionProyectoDidactico> ActividadesDia12 = new List<InformePlanificacionProyectoDidactico>();
                List<InformePlanificacionProyectoDidactico> ActividadesDia13 = new List<InformePlanificacionProyectoDidactico>();
                List<InformePlanificacionProyectoDidactico> ActividadesDia14 = new List<InformePlanificacionProyectoDidactico>();
                List<InformePlanificacionProyectoDidactico> ActividadesDia15 = new List<InformePlanificacionProyectoDidactico>();
                List<InformePlanificacionProyectoDidactico> ActividadesDia16 = new List<InformePlanificacionProyectoDidactico>();
                List<InformePlanificacionProyectoDidactico> ActividadesDia17 = new List<InformePlanificacionProyectoDidactico>();
                List<InformePlanificacionProyectoDidactico> ActividadesDia18 = new List<InformePlanificacionProyectoDidactico>();
                List<InformePlanificacionProyectoDidactico> ActividadesDia19 = new List<InformePlanificacionProyectoDidactico>();
                List<InformePlanificacionProyectoDidactico> ActividadesDia20 = new List<InformePlanificacionProyectoDidactico>();
                List<InformePlanificacionProyectoDidactico> ActividadesDia21 = new List<InformePlanificacionProyectoDidactico>();
                List<InformePlanificacionProyectoDidactico> ActividadesDia22 = new List<InformePlanificacionProyectoDidactico>();
                List<InformePlanificacionProyectoDidactico> ActividadesDia23 = new List<InformePlanificacionProyectoDidactico>();
                List<InformePlanificacionProyectoDidactico> ActividadesDia24 = new List<InformePlanificacionProyectoDidactico>();
                List<InformePlanificacionProyectoDidactico> ActividadesDia25 = new List<InformePlanificacionProyectoDidactico>();
                List<InformePlanificacionProyectoDidactico> ActividadesDia26 = new List<InformePlanificacionProyectoDidactico>();
                List<InformePlanificacionProyectoDidactico> ActividadesDia27 = new List<InformePlanificacionProyectoDidactico>();
                List<InformePlanificacionProyectoDidactico> ActividadesDia28 = new List<InformePlanificacionProyectoDidactico>();
                List<InformePlanificacionProyectoDidactico> ActividadesDia29 = new List<InformePlanificacionProyectoDidactico>();
                List<InformePlanificacionProyectoDidactico> ActividadesDia30 = new List<InformePlanificacionProyectoDidactico>();
                List<InformePlanificacionProyectoDidactico> ActividadesDia31 = new List<InformePlanificacionProyectoDidactico>();

                ActividadesDia1 = CargarListaActividades(planificacion, 1);
                ActividadesDia2 = CargarListaActividades(planificacion, 2);
                ActividadesDia3 = CargarListaActividades(planificacion, 3);
                ActividadesDia4 = CargarListaActividades(planificacion, 4);
                ActividadesDia5 = CargarListaActividades(planificacion, 5);
                ActividadesDia6 = CargarListaActividades(planificacion, 6);
                ActividadesDia7 = CargarListaActividades(planificacion, 7);
                ActividadesDia8 = CargarListaActividades(planificacion, 8);
                ActividadesDia9 = CargarListaActividades(planificacion, 9);
                ActividadesDia10 = CargarListaActividades(planificacion, 10);
                ActividadesDia11 = CargarListaActividades(planificacion, 11);
                ActividadesDia12 = CargarListaActividades(planificacion, 12);
                ActividadesDia13 = CargarListaActividades(planificacion, 13);
                ActividadesDia14 = CargarListaActividades(planificacion, 14);
                ActividadesDia15 = CargarListaActividades(planificacion, 15);
                ActividadesDia16 = CargarListaActividades(planificacion, 16);
                ActividadesDia17 = CargarListaActividades(planificacion, 17);
                ActividadesDia18 = CargarListaActividades(planificacion, 18);
                ActividadesDia19 = CargarListaActividades(planificacion, 19);
                ActividadesDia20 = CargarListaActividades(planificacion, 20);
                ActividadesDia21 = CargarListaActividades(planificacion, 21);
                ActividadesDia22 = CargarListaActividades(planificacion, 22);
                ActividadesDia23 = CargarListaActividades(planificacion, 23);
                ActividadesDia24 = CargarListaActividades(planificacion, 24);
                ActividadesDia25 = CargarListaActividades(planificacion, 25);
                ActividadesDia26 = CargarListaActividades(planificacion, 26);
                ActividadesDia27 = CargarListaActividades(planificacion, 27);
                ActividadesDia28 = CargarListaActividades(planificacion, 28);
                ActividadesDia29 = CargarListaActividades(planificacion, 29);
                ActividadesDia30 = CargarListaActividades(planificacion, 30);
                ActividadesDia31 = CargarListaActividades(planificacion, 31);

                if (ActividadesDia1.Count == 0)
                {
                    if (comentarios.Dia1 == String.Empty)
                        comentarios.Dia1 = "No se han planificado actividades";
                }

                if (ActividadesDia2.Count == 0)
                {
                    if (comentarios.Dia2 == String.Empty)
                        comentarios.Dia2 = "No se han planificado actividades";
                }

                if (ActividadesDia3.Count == 0)
                {
                    if (comentarios.Dia3 == String.Empty)
                        comentarios.Dia3 = "No se han planificado actividades";
                }

                if (ActividadesDia4.Count == 0)
                {
                    if (comentarios.Dia4 == String.Empty)
                        comentarios.Dia4 = "No se han planificado actividades";
                }

                if (ActividadesDia5.Count == 0)
                {
                    if (comentarios.Dia5 == String.Empty)
                        comentarios.Dia5 = "No se han planificado actividades";
                }

                if (ActividadesDia6.Count == 0)
                {
                    if (comentarios.Dia6 == String.Empty)
                        comentarios.Dia6 = "No se han planificado actividades";
                }

                if (ActividadesDia7.Count == 0)
                {
                    if (comentarios.Dia7 == String.Empty)
                        comentarios.Dia7 = "No se han planificado actividades";
                }

                if (ActividadesDia8.Count == 0)
                {
                    if (comentarios.Dia8 == String.Empty)
                        comentarios.Dia8 = "No se han planificado actividades";
                }

                if (ActividadesDia9.Count == 0)
                {
                    if (comentarios.Dia9 == String.Empty)
                        comentarios.Dia9 = "No se han planificado actividades";
                }

                if (ActividadesDia10.Count == 0)
                {
                    if (comentarios.Dia10 == String.Empty)
                        comentarios.Dia10 = "No se han planificado actividades";
                }

                if (ActividadesDia11.Count == 0)
                {
                    if (comentarios.Dia11 == String.Empty)
                        comentarios.Dia11 = "No se han planificado actividades";
                }

                if (ActividadesDia12.Count == 0)
                {
                    if (comentarios.Dia12 == String.Empty)
                        comentarios.Dia12 = "No se han planificado actividades";
                }

                if (ActividadesDia13.Count == 0)
                {
                    if (comentarios.Dia13 == String.Empty)
                        comentarios.Dia13 = "No se han planificado actividades";
                }

                if (ActividadesDia14.Count == 0)
                {
                    if (comentarios.Dia14 == String.Empty)
                        comentarios.Dia14 = "No se han planificado actividades";
                }
                if (ActividadesDia15.Count == 0)
                {
                    if (comentarios.Dia15 == String.Empty)
                        comentarios.Dia15 = "No se han planificado actividades";
                }

                if (ActividadesDia16.Count == 0)
                {
                    if (comentarios.Dia16 == String.Empty)
                        comentarios.Dia16 = "No se han planificado actividades";
                }

                if (ActividadesDia17.Count == 0)
                {
                    if (comentarios.Dia17 == String.Empty)
                        comentarios.Dia17 = "No se han planificado actividades";
                }

                if (ActividadesDia18.Count == 0)
                {
                    if (comentarios.Dia18 == String.Empty)
                        comentarios.Dia18 = "No se han planificado actividades";
                }

                if (ActividadesDia19.Count == 0)
                {
                    if (comentarios.Dia19 == String.Empty)
                        comentarios.Dia19 = "No se han planificado actividades";
                }

                if (ActividadesDia20.Count == 0)
                {
                    if (comentarios.Dia20 == String.Empty)
                        comentarios.Dia20 = "No se han planificado actividades";
                }

                if (ActividadesDia21.Count == 0)
                {
                    if (comentarios.Dia21 == String.Empty)
                        comentarios.Dia21 = "No se han planificado actividades";
                }

                if (ActividadesDia22.Count == 0)
                {
                    if (comentarios.Dia22 == String.Empty)
                        comentarios.Dia22 = "No se han planificado actividades";
                }

                if (ActividadesDia23.Count == 0)
                {
                    if (comentarios.Dia23 == String.Empty)
                        comentarios.Dia23 = "No se han planificado actividades";
                }

                if (ActividadesDia24.Count == 0)
                {
                    if (comentarios.Dia24 == String.Empty)
                        comentarios.Dia24 = "No se han planificado actividades";
                }

                if (ActividadesDia25.Count == 0)
                {
                    if (comentarios.Dia25 == String.Empty)
                        comentarios.Dia25 = "No se han planificado actividades";
                }

                if (ActividadesDia26.Count == 0)
                {
                    if (comentarios.Dia26 == String.Empty)
                        comentarios.Dia26 = "No se han planificado actividades";
                }

                if (ActividadesDia27.Count == 0)
                {
                    if (comentarios.Dia27 == String.Empty)
                        comentarios.Dia27 = "No se han planificado actividades";
                }

                if (ActividadesDia28.Count == 0)
                {
                    if (comentarios.Dia28 == String.Empty)
                        comentarios.Dia28 = "No se han planificado actividades";
                }


                if (primerDiaPeriodo.Month != 2)
                {

                    if (ActividadesDia29.Count == 0)
                    {
                        if (comentarios.Dia29 == String.Empty)
                            comentarios.Dia29 = "No se han planificado actividades";
                    }

                    if (ActividadesDia30.Count == 0)
                    {
                        if (comentarios.Dia30 == String.Empty)
                            comentarios.Dia30 = "No se han planificado actividades";
                    }

                    if (primerDiaPeriodo.Month == 1 || primerDiaPeriodo.Month == 3 || primerDiaPeriodo.Month == 5 || primerDiaPeriodo.Month == 7 || primerDiaPeriodo.Month == 8 || primerDiaPeriodo.Month == 10 || primerDiaPeriodo.Month == 12)
                    {
                        if (ActividadesDia31.Count == 0)
                        {
                            if (comentarios.Dia31 == String.Empty)
                                comentarios.Dia31 = "No se han planificado actividades";
                        }
                    }

                }
                else
                {
                    if (DateTime.IsLeapYear(primerDiaPeriodo.Year))
                    {
                        if (ActividadesDia29.Count == 0)
                        {
                            if (comentarios.Dia29 == String.Empty)
                                comentarios.Dia29 = "No se han planificado actividades";
                        }

                    }

                }


                this.view.rvPlanificacionProyectoDidactico.ProcessingMode = ProcessingMode.Local;
                this.view.rvPlanificacionProyectoDidactico.LocalReport.DataSources.Clear();

                InformePlanificacionComentariosDias[] informeComentarios = new InformePlanificacionComentariosDias[] { comentarios };

                this.view.rvPlanificacionProyectoDidactico.LocalReport.DataSources.Add(new ReportDataSource("ConjuntoDatosComentarios", informeComentarios));

                this.view.rvPlanificacionProyectoDidactico.LocalReport.DataSources.Add(new ReportDataSource("ConjuntoActividadesDia1", ActividadesDia1));
                this.view.rvPlanificacionProyectoDidactico.LocalReport.DataSources.Add(new ReportDataSource("ConjuntoActividadesDia2", ActividadesDia2));
                this.view.rvPlanificacionProyectoDidactico.LocalReport.DataSources.Add(new ReportDataSource("ConjuntoActividadesDia3", ActividadesDia3));
                this.view.rvPlanificacionProyectoDidactico.LocalReport.DataSources.Add(new ReportDataSource("ConjuntoActividadesDia4", ActividadesDia4));
                this.view.rvPlanificacionProyectoDidactico.LocalReport.DataSources.Add(new ReportDataSource("ConjuntoActividadesDia5", ActividadesDia5));
                this.view.rvPlanificacionProyectoDidactico.LocalReport.DataSources.Add(new ReportDataSource("ConjuntoActividadesDia6", ActividadesDia6));
                this.view.rvPlanificacionProyectoDidactico.LocalReport.DataSources.Add(new ReportDataSource("ConjuntoActividadesDia7", ActividadesDia7));
                this.view.rvPlanificacionProyectoDidactico.LocalReport.DataSources.Add(new ReportDataSource("ConjuntoActividadesDia8", ActividadesDia8));
                this.view.rvPlanificacionProyectoDidactico.LocalReport.DataSources.Add(new ReportDataSource("ConjuntoActividadesDia9", ActividadesDia9));
                this.view.rvPlanificacionProyectoDidactico.LocalReport.DataSources.Add(new ReportDataSource("ConjuntoActividadesDia10", ActividadesDia10));
                this.view.rvPlanificacionProyectoDidactico.LocalReport.DataSources.Add(new ReportDataSource("ConjuntoActividadesDia11", ActividadesDia11));
                this.view.rvPlanificacionProyectoDidactico.LocalReport.DataSources.Add(new ReportDataSource("ConjuntoActividadesDia12", ActividadesDia12));
                this.view.rvPlanificacionProyectoDidactico.LocalReport.DataSources.Add(new ReportDataSource("ConjuntoActividadesDia13", ActividadesDia13));
                this.view.rvPlanificacionProyectoDidactico.LocalReport.DataSources.Add(new ReportDataSource("ConjuntoActividadesDia14", ActividadesDia14));
                this.view.rvPlanificacionProyectoDidactico.LocalReport.DataSources.Add(new ReportDataSource("ConjuntoActividadesDia15", ActividadesDia15));
                this.view.rvPlanificacionProyectoDidactico.LocalReport.DataSources.Add(new ReportDataSource("ConjuntoActividadesDia16", ActividadesDia16));
                this.view.rvPlanificacionProyectoDidactico.LocalReport.DataSources.Add(new ReportDataSource("ConjuntoActividadesDia17", ActividadesDia17));
                this.view.rvPlanificacionProyectoDidactico.LocalReport.DataSources.Add(new ReportDataSource("ConjuntoActividadesDia18", ActividadesDia18));
                this.view.rvPlanificacionProyectoDidactico.LocalReport.DataSources.Add(new ReportDataSource("ConjuntoActividadesDia19", ActividadesDia19));
                this.view.rvPlanificacionProyectoDidactico.LocalReport.DataSources.Add(new ReportDataSource("ConjuntoActividadesDia20", ActividadesDia20));
                this.view.rvPlanificacionProyectoDidactico.LocalReport.DataSources.Add(new ReportDataSource("ConjuntoActividadesDia21", ActividadesDia21));
                this.view.rvPlanificacionProyectoDidactico.LocalReport.DataSources.Add(new ReportDataSource("ConjuntoActividadesDia22", ActividadesDia22));
                this.view.rvPlanificacionProyectoDidactico.LocalReport.DataSources.Add(new ReportDataSource("ConjuntoActividadesDia23", ActividadesDia23));
                this.view.rvPlanificacionProyectoDidactico.LocalReport.DataSources.Add(new ReportDataSource("ConjuntoActividadesDia24", ActividadesDia24));
                this.view.rvPlanificacionProyectoDidactico.LocalReport.DataSources.Add(new ReportDataSource("ConjuntoActividadesDia25", ActividadesDia25));
                this.view.rvPlanificacionProyectoDidactico.LocalReport.DataSources.Add(new ReportDataSource("ConjuntoActividadesDia26", ActividadesDia26));
                this.view.rvPlanificacionProyectoDidactico.LocalReport.DataSources.Add(new ReportDataSource("ConjuntoActividadesDia27", ActividadesDia27));
                this.view.rvPlanificacionProyectoDidactico.LocalReport.DataSources.Add(new ReportDataSource("ConjuntoActividadesDia28", ActividadesDia28));

                if (primerDiaPeriodo.Month != 2)
                {
                    this.view.rvPlanificacionProyectoDidactico.LocalReport.DataSources.Add(new ReportDataSource("ConjuntoActividadesDia29", ActividadesDia29));
                    this.view.rvPlanificacionProyectoDidactico.LocalReport.DataSources.Add(new ReportDataSource("ConjuntoActividadesDia30", ActividadesDia30));
                }
                else
                {
                    if (DateTime.IsLeapYear(primerDiaPeriodo.Year))
                        this.view.rvPlanificacionProyectoDidactico.LocalReport.DataSources.Add(new ReportDataSource("ConjuntoActividadesDia29", ActividadesDia29));

                }

                if (primerDiaPeriodo.Month == 1 || primerDiaPeriodo.Month == 3 || primerDiaPeriodo.Month == 5 || primerDiaPeriodo.Month == 7 || primerDiaPeriodo.Month == 8 || primerDiaPeriodo.Month == 10 || primerDiaPeriodo.Month == 12)
                    this.view.rvPlanificacionProyectoDidactico.LocalReport.DataSources.Add(new ReportDataSource("ConjuntoActividadesDia31", ActividadesDia31));


                if (primerDiaPeriodo.Month == 1 || primerDiaPeriodo.Month == 3 || primerDiaPeriodo.Month == 5 || primerDiaPeriodo.Month == 7 || primerDiaPeriodo.Month == 8 || primerDiaPeriodo.Month == 10 || primerDiaPeriodo.Month == 12)
                    this.view.rvPlanificacionProyectoDidactico.LocalReport.ReportEmbeddedResource = "CapaPresentacion.Controles.ReportePlanificaciónProyectoDidáctico.rdlc";
                else
                {

                    if (primerDiaPeriodo.Month != 2)
                        this.view.rvPlanificacionProyectoDidactico.LocalReport.ReportEmbeddedResource = "CapaPresentacion.Controles.ReportePlanificaciónProyectoDidáctico30Dias.rdlc";
                    else
                    {
                        if(DateTime.IsLeapYear(primerDiaPeriodo.Year))
                            this.view.rvPlanificacionProyectoDidactico.LocalReport.ReportEmbeddedResource = "CapaPresentacion.Controles.ReportePlanificaciónProyectoDidácticoFebreroBisiesto.rdlc";
                        else
                            this.view.rvPlanificacionProyectoDidactico.LocalReport.ReportEmbeddedResource = "CapaPresentacion.Controles.ReportePlanificaciónProyectoDidácticoFebrero.rdlc";

                    }

                }
                
                
                
                this.view.rvPlanificacionProyectoDidactico.ShowBackButton = false;
                this.view.rvPlanificacionProyectoDidactico.ShowRefreshButton = false;

                List<ReportParameter> parameters = new List<ReportParameter>();

                parameters.Add(new ReportParameter("ProyectoParameter", planificacion.MesPlanificacion + " " + planificacion.AñoPlanificacion + " - " + planificacion.ProyectoDidactico.NombreProyectoDidactico));

                this.view.rvPlanificacionProyectoDidactico.LocalReport.SetParameters(parameters);
                this.view.rvPlanificacionProyectoDidactico.RefreshReport();

                this.view.spReporte.Visibility = Visibility.Visible;

            }
            else
            {
                this.view.lblNoSelected.Visibility = Visibility.Visible;
            }



           




        }

        internal List<InformePlanificacionProyectoDidactico> CargarListaActividades(PlanificacionProyectoDidactico planificacion, int dia)
        {
            List<InformePlanificacionProyectoDidactico> Lista = new List<InformePlanificacionProyectoDidactico>();


            var Existen = (from v in planificacion.PlanificacionesDiariasProyectoDidactico
                         where v.Dia == dia &&
                            v.Eliminada != true
                         select v).Any();

            if (Existen)
            {
                var ActividadesDia = (from v in planificacion.PlanificacionesDiariasProyectoDidactico
                                      where v.Dia == dia &&
                                      v.Eliminada != true
                                      select v.ActividadDidactica).ToList();

                foreach (var item in ActividadesDia)
                {
                    string nombreMateriales = String.Empty;
                    ObservableCollection<string> Materiales = new ActividadDidacticaLogica().ObtenerMaterialesDeActividad(item.IdActividad);

                    if (Materiales != null)
                    {
                        foreach (var mat in Materiales)
                        {
                            nombreMateriales = nombreMateriales + ", " + mat;
                        }

                        nombreMateriales = nombreMateriales.Substring(2, nombreMateriales.Length - 2);
                    }

                    Lista.Add(new InformePlanificacionProyectoDidactico(item.NombreActividad, nombreMateriales));                    
                }

                return Lista;
            }
            else
                return Lista;


        }

        internal int ObtenerNumeroMes(string mes)
        {

            switch (mes)
            {

                case "Enero":
                    return 1;

                case "Febrero":
                    return 2;

                case "Marzo":
                    return 3;

                case "Abril":
                    return 4;

                case "Mayo":
                    return 5;

                case "Junio":
                    return 6;

                case "Julio":
                    return 7;

                case "Agosto":
                    return 8;

                case "Septiembre":
                    return 9;

                case "Octubre":
                    return 10;

                case "Noviembre":
                    return 11;

                case "Diciembre":
                    return 12;

                default: return 0;

            }


        }

    }
}
